ADC
 
 
 Bean ADC
 
A/D converter
A/D Prevodník

Preklad: jarjan 15. decembra 2008
Application Notes, Tips and Tricks for the bean. Hints for code optimization.
Aplikačné poznámky, tipy a triky pre beany. Smerujúce ku optimalizácii programu. 

Application Notes:
Aplikačné poznámky:



(1) Inappropriate use of Measure(TRUE) or MeasureChan(TRUE) call can lead to application dead-lock.
I.e. in polling mode (Interrupt service is disabled) the application stucks in Measure method, if Disable method is called from an event of other bean, or the speed mode is switched to a mode where the ADC bean is disabled while a measurement launched by Measure(TRUE) method is in progress.
Or if method Measure(TRUE) is called from an event of some bean and the priority of the interrupt of ADC bean isn't higher than the priority of this event (Interrupt service is enabled), this method will stuck.

(1) Nevhodné využitie volania  Measure(TRUE) alebo MeasureChan(TRUE)  môže viesť ku aplikačnému smrtelnému zablokovaniu systému (dead-lock). T.j. v režime pooling (Interrupt service - obsluha prerušenia je zakázaná) aplikácia zaklinená v metóde Measure - Meranie, ak metóda  Disable je volaná z udalosti iného beanu, alebo  speed mode - rezim rýchlosti je prepnutý do režimu v ktorom je bean ADC zakázaný pokiaľ meranie je  odštartované metódou Measure(TRUE) 
is in progress.
Alebo ak metóda  Measure(TRUE) je volaná z udalosti niektorého beanu a priority - priorita prerušenia od ADC beanu nie je vyššia ako priorita tejto udalosti (Interrupt service - obsluha prerušenia je povolená), táto metóda bude zaklinená.


Version specific information for HCS12 derivatives 
Od verzie závislé špecifické informácie k rodine mikropočítčov HCS12

(2) Problem with clearing External Trigger Overrun Flag
There is an issue concerning clearing of the ETORF flag. According to the datasheet writing 1 into the corresponding bit clears the ETORF flag. However this method fails on some versions of the HCS12 family (e.g. DP256B and others, see errata). It wasn't possible to use an alternative clearing method in all configurations of the ADC bean. As a result on some HCS12 derivatives the OnTrgOverrun event may be called inadvertently several times, because the ETORF flag is not cleared correctly.
If selected CPU is affected by this problem in AD converter (see errata) the clearing of the ETORF flag can be ensured by writing to a control register of the AD converter in the OnTrgOverrun event. This can be accomplished e.g. by sequential calling of Disable and Enable methods, or by calling Stop method followed by calling of a measuring method.

(2) Problém s mazaním príznaku pretečenia externého triggeru. Tu je jeden problém týkajúci sa mazania príznaku ETORF. Podľa dokumentácie zápis 1 do odpovedajúceho bitu zmaže príznak ETORF. Napriek tomu táto metóda dopadne s chybou v niektorých verziách rodiny mikropočítačov  HCS12 (napr.  DP256B a iné pozrite prílohu chýb). Nie je možné použiť alternatívnu mazaciu metódu vo všetkých konfiguráciách ADC beanov.  Ako výsledok v niektorých mikropočítačov patriacich do rodiny HCS12 udalosť OnTrgOverrun môže byť volaná omylom niekoľko krát, z dôvodu že sa  príznak ETORF sa nezmazal korektne. Ak vybratý CPU je ovplyvnený týmto problémom v AD prevodníku (pozrite prílohu chýb) zmazanie príznaku ETORF môže byť zaistené zápisom do riadiaceho registra AD konvertora v udalosti  OnTrgOverrun. To môže byť zabezpečené napr. sekvenčným volaním metódy  Disable a Enable, alebo volaním metódy Stop nasledovanej volaním metódy merania. 

 

Example 1:
Príklad 1:

EVENTS.C

void AD_OnTrgOverrun(void)
{
  AD_Disable();
  AD_Enable();
  ........
   }

Example 2:
Príklad 2:

EVENTS.C

void AD_OnTrgOverrun(void)
{
  AD_Stop();
  AD_EnableExtTrigger();
  ........
   }



Processor ExpertTM and Embedded BeansTM are registered trademarks of UNIS, Ltd.
©1997-2005, UNIS, Ltd.